Various forms of network data storage systems are known today. These forms include network attached storage (NAS), storage area networks (SANs), and others. Network storage systems are commonly used for a variety of purposes, such as providing multiple users with access to shared data, backing up critical data (e.g., by data mirroring), etc. These data storage systems use storage virtualization to abstract the logical storage from the physical storage to provide a resource pool of storage resources. However, host-side servers, which interact with these data storage systems, use various types of different virtualizations than the storage virtualization on the storage systems. For example, every vendor of resources, such as vendors of applications, databases, servers, and storage devices, attempts to add value from virtualization, but has consequently adopted a different storage virtualization strategy for their particular resource. Storage virtualization, as used herein, refers to the process of abstracting logical storage from physical storage. Each of the host-side servers employ different host-side virtualization strategies, which include a set of rules that govern how host-side storage objects are represented logically on the host-side server. The set of rules may be stored in memory of the host-side server.
One goal in storage resource management (SRM) is to have the ability to deliver peak resource utilization on a shared resource pool to thereby minimize wasted idle storage resources. Due to the competition among the various vendors to virtualize resources, most systems are not complete data center management solutions, resulting in computing environments that include multiple heterogeneous virtualization strategies that may not take full advantage the storage virtualization of the underlying storage system. Since the host-side file systems include one of multiple heterogeneous virtualization strategies, they are referred to herein as heterogeneous host-side servers. For example, a typical computing environment may include multiple heterogeneous host-side servers that utilize a storage system that employs a storage virtualization strategy that is different than the host-side virtualization strategies of the host-side servers. In conventional computing systems, a conventional data center environment may have a host-side server and a storage system, which are both separately managed by the server administrator and the storage administrator, respectively, such as illustrated in FIG. 1. The server administrator is responsible for managing the physical and software resources of one or more host-side servers. Part of those software resources is the server 10 stack (host-side file system, volume manager, virtual disks, NFS mounts, etc). The storage administrator, on the other hand, manages the physical and software resources of one or more storage systems, such as logical units of data (e.g., logical unit numbers (LUN), logical containers (e.g., volumes, aggregates, etc), and NFS exports). The server administrator has a set of challenges. The first is that the server 10 stacks are different and are there are no tools for effectively managing them as anything but distinct host-side file systems. The second is that the server IO stack is dependent on physical and software resources managed by a different administrative group, the storage administrator. As a result the server administrator is unable to exploit the virtualization value of centralized storage resources without involving the storage administrator. Although host-side storage objects can be manually mapped to storage objects in the storage system, conventional systems do not provide any tools to allow a server administrator to manage the data in the storage object without administrator interaction, such as by a storage administrator, at the storage system. For example, to perform an operation like a snapshot or a snapshot restore, the entire set of storage resources (e.g., storage objects) must be manipulated, requiring both human co-ordination and software that can map between the two sets of storage resources—the host-side storage resources of the host-side server and the storage resources of the storage system. A snapshot operation creates a copy of a set of files and directories as they were at a particular point in time.
For example, the conventional SRM tools require administrator interaction at the storage system to provision storage resources on the storage system. Conventional SRM tools, which may be used in such environments as described above, simply connect an initiator host bus adapter (HBA) to a target HBA in provisioning storage. That is, the server administrator notifies the storage administrator that a storage resource of a specified capacity is needed, and the storage administrator allocates the appropriate storage resource, notifying the server administrator of the target location for the particular storage resource. The target HBA of the storage resource in the storage system is then manually mapped to the initiator HBA of the storage resource on the host-side server using the SRM tool. The conventional SRM tools are not used to create and/or manage file system on the host-side server, nor create and/or manage the storage resources on the storage system, but to manually map the host-side storage objects using human coordinate between the server and storage administrators. Also, the conventional SRM tools do not provision storage according to the underlying storage system, and thus, do not take advantage of the benefits of the storage virtualization, such as thin provisioning and snapshot operations. Thin provisioning is a provisioning operation that allows space to be allocated to servers, on a just-enough and just-in-time basis, as compared to pre-allocating a large amount of space to account for possible data growth. Thin provisioning may be used in many applications where access to the same storage resource pool is used, allowing administrators to maintain space in the resource pool to service the data growth requirements of the many applications on an ongoing basis. Thin provisioning may allow organizations to purchase less storage capacity up front, and defer storage capacity upgrades with actual increase in usage. In contrast, in fat provisioning, typically large amounts of storage capacity are pre-allocated to individual applications. Most of the storage resources in fat provisioning remain unused (e.g., not written to), resulting in poor utilization rates.
Similarly, conventional SRM tools may not take advantage of such features of the underlying storage systems, such as snapshot operations. Snapshot operations may generate a copy of a set of files and/or directories as are at a particular point in time. As described above, to perform an operation like a snapshot or a snapshot restore, the entire set of storage resources (e.g., storage objects) must be manipulated, requiring both human co-ordination and software that can map between the two sets of storage resources—the host-side storage resources of the host-side server and the storage resources of the storage system.
Also, since the conventional provisioning tools in servers do not provision storage according to the underlying storage system, but are limited to provisioning storage according to their own specific virtualization strategy, the conventional provisioning tools do not provide a heterogeneous tool for multiple heterogeneous host-side servers that employ different virtualization strategies. Some other conventional systems attempt to provide tools for achieving end-to-end provisioning, however, these tools are limited to the specific virtualization strategy employed for the particular system, and do not allow centralized storage provisioning for multiple heterogeneous host-side servers that employ different virtualization strategies.
Also, since the conventional SRM tools do not provision storage according to the underlying storage system, the conventional SRM tools cannot detect and report out-of-space conditions, especially when there are storage-based snapshots and thin provisioning. From a traditional file system perspective, the storage space is entirely contained within the file system, but in a centralized file system of multiple heterogeneous host-side servers, the out-of-space conditions on the storage system need to be correlated to the out-of-space conditions on each of the host-side servers.